package com.education.ai.dao;

import com.education.ai.entity.ExamRecord;

import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
 * 考试记录数据访问接口
 */
public interface ExamRecordDao {
    
    /**
     * 查询所有考试记录
     */
    List<ExamRecord> findAll();
    
    /**
     * 根据ID查询考试记录
     */
    Optional<ExamRecord> findById(Long id);
    
    /**
     * 根据学生ID查询考试记录
     */
    List<ExamRecord> findByStudentId(String studentId);
    
    /**
     * 根据学生ID列表查询考试记录
     */
    List<ExamRecord> findByStudentIdIn(List<String> studentIds);
    
    /**
     * 查询学生的平均成绩
     */
    Map<String, Double> findAverageScoresByStudentId(String studentId);
    
    /**
     * 保存考试记录
     */
    ExamRecord save(ExamRecord examRecord);
    
    /**
     * 批量保存考试记录
     */
    List<ExamRecord> saveAll(List<ExamRecord> examRecords);
    
    /**
     * 更新考试记录
     */
    boolean update(ExamRecord examRecord);
    
    /**
     * 删除考试记录
     */
    boolean deleteById(Long id);
    
    /**
     * 查询考试记录总数
     */
    long count();
} 